package br.edu.granbery.indianostore.dao;

import br.edu.granbery.indianostore.dao.DaoFactory;
import br.edu.granbery.indianostore.model.Produto;

import java.util.ArrayList;
import java.util.List;

import org.hibernate.Session;

/**
 *
 * @author Luiz
 */
public class ProdutoDao {

    private Session session;
    
    ProdutoDao(Session session) {
        this.session = session;
    }

    public List<Produto> buscar() {
    	List<Produto> produtos = session.createCriteria(Produto.class).list();
        return produtos;
    }
    
    
    public List<Produto> buscar(String arg) {
    	List<Produto> produtos = session.createCriteria(Produto.class).list();
        
    	List<Produto> filtro = new ArrayList<Produto>();
    	for (Produto produto : produtos)
    	{
    		if(produto.getNome().toLowerCase().contains(arg.toLowerCase()))
    			filtro.add(produto);
    	}
    	
    	return filtro;
    }

    public Produto buscar(int id) {
        return (Produto) this.session.load(Produto.class, id);
    }

    public Produto buscarProduto(int id) {
        return (Produto) this.session.get(Produto.class, id);
    }
    
    public boolean inserir(Produto produto) {
        try {
            this.session.save(produto);
        } catch (Exception e) {
            return false;
        }
        return true;
    }

    public boolean atualizar(Produto produto) {
        try {
            this.session.merge(produto);
        } catch (Exception e) {
            return false;
        }
        return true;
    }

    public boolean remover(Produto produto) {
        try {
            this.session.delete(produto);
        } catch (Exception e) {
            return false;
        }
        return true;
    }

    public void destruir(Produto produto) {
        this.session.evict(produto);
    }

    public void destruirList(List<Produto> produto) {
        this.session.evict(produto);
    }
}
